/**
 * shell 命令执行封装
 */

/**
 * 执行指定的 shell 命令
 *
 * @param {Array<String>|String} cmd 要执行的命令。
 *   1. 如果是数组类型，则按 Deno.run(Array) 的格式直接执行。
 *   2. 如果是字符串类型，则按空格分割为字符串数组，再传给 Deno.run(Array) 执行。
 * @returns {Promise<Deno.ProcessStatus>}
 */
async function executeShellCommand(cmd) {
  if (Array.isArray(cmd)) {
    // console.log("cmdArray=" + JSON.stringify(cmd));
    return await Deno.run({ cmd: cmd }).status();
  } else {
    // console.log("cmdString=" + cmd);
    const a = cmd.split(" ");
    // console.log("cmdArray=" + JSON.stringify(a));
    return await Deno.run({ cmd: a }).status();
  }
}

export { executeShellCommand };
